package cn.micai.base.string;

/**
 * 描述：在java中找到字符串的所有子字符串
 * <p>
 *     例如：如果输入是“abb”，那么输出应该是“a”、“b”、“b”、“ab”、“bb”、“abb”。
 *     我们将使用String类的subString方法来查找所有子字符串
 *
 * @author: 赵新国
 * @date: 2018/6/11 11:38
 */
public class SubstringsOfStringMain {

    public static void main(String [] args) {

        String str = "abc";
        System.out.println("All substring of abbc are: ");
        for (int i=0; i < str.length(); i++) {
            for (int j=i+1; j <= str.length(); j++) {
                System.out.println(str.substring(i, j));
            }
        }
        // 上面的解决方案是o（n 2）时间复杂度。n个字符串的子串数是n（n+1）/2，所以我们无法得到最优解。
        // 如果您想要找到字符串的所有不同的子字符串，那么使用HashSet删除副本。

    }
}
